home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / mswsock.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  4.1 KB  |  185 lines

  1. /*++
  2.  
  3. Copyright (c) 1989-1996  Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     mswsock.h
  8.  
  9. Abstract:
  10.  
  11.     This module contains the Microsoft-specific extensions to the Windows
  12.     Sockets API.
  13.  
  14. Author:
  15.  
  16.     Keith Moore (keithmo) 06-Oct-1995 (Separated from WINSOCK.H).
  17.  
  18. Revision History:
  19.  
  20. --*/
  21.  
  22. #ifndef _MSWSOCK_
  23. #define _MSWSOCK_
  24. #pragma option push -b
  25.  
  26.  
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30.  
  31. /*
  32.  * Options for connect and disconnect data and options.  Used only by
  33.  * non-TCP/IP transports such as DECNet, OSI TP4, etc.
  34.  */
  35. #define SO_CONNDATA                 0x7000
  36. #define SO_CONNOPT                  0x7001
  37. #define SO_DISCDATA                 0x7002
  38. #define SO_DISCOPT                  0x7003
  39. #define SO_CONNDATALEN              0x7004
  40. #define SO_CONNOPTLEN               0x7005
  41. #define SO_DISCDATALEN              0x7006
  42. #define SO_DISCOPTLEN               0x7007
  43.  
  44. /*
  45.  * Option for opening sockets for synchronous access.
  46.  */
  47. #define SO_OPENTYPE                 0x7008
  48.  
  49. #define SO_SYNCHRONOUS_ALERT        0x10
  50. #define SO_SYNCHRONOUS_NONALERT     0x20
  51.  
  52. /*
  53.  * Other NT-specific options.
  54.  */
  55. #define SO_MAXDG                    0x7009
  56. #define SO_MAXPATHDG                0x700A
  57. #define SO_UPDATE_ACCEPT_CONTEXT    0x700B
  58. #define SO_CONNECT_TIME             0x700C
  59.  
  60. /*
  61.  * TCP options.
  62.  */
  63. #define TCP_BSDURGENT               0x7000
  64.  
  65. /*
  66.  * Microsoft extended APIs.
  67.  */
  68. int
  69. PASCAL FAR
  70. WSARecvEx (
  71.     SOCKET s,
  72.     char FAR *buf,
  73.     int len,
  74.     int FAR *flags
  75.     );
  76.  
  77. typedef struct _TRANSMIT_FILE_BUFFERS {
  78.     LPVOID Head;
  79.     DWORD HeadLength;
  80.     LPVOID Tail;
  81.     DWORD TailLength;
  82. } TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, FAR *LPTRANSMIT_FILE_BUFFERS;
  83.  
  84. #define TF_DISCONNECT       0x01
  85. #define TF_REUSE_SOCKET     0x02
  86. #define TF_WRITE_BEHIND     0x04
  87.  
  88. BOOL
  89. PASCAL FAR
  90. TransmitFile (
  91.     IN SOCKET hSocket,
  92.     IN HANDLE hFile,
  93.     IN DWORD nNumberOfBytesToWrite,
  94.     IN DWORD nNumberOfBytesPerSend,
  95.     IN LPOVERLAPPED lpOverlapped,
  96.     IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
  97.     IN DWORD dwReserved
  98.     );
  99.  
  100. BOOL
  101. PASCAL FAR
  102. AcceptEx (
  103.     IN SOCKET sListenSocket,
  104.     IN SOCKET sAcceptSocket,
  105.     IN PVOID lpOutputBuffer,
  106.     IN DWORD dwReceiveDataLength,
  107.     IN DWORD dwLocalAddressLength,
  108.     IN DWORD dwRemoteAddressLength,
  109.     OUT LPDWORD lpdwBytesReceived,
  110.     IN LPOVERLAPPED lpOverlapped
  111.     );
  112.  
  113. VOID
  114. PASCAL FAR
  115. GetAcceptExSockaddrs (
  116.     IN PVOID lpOutputBuffer,
  117.     IN DWORD dwReceiveDataLength,
  118.     IN DWORD dwLocalAddressLength,
  119.     IN DWORD dwRemoteAddressLength,
  120.     OUT struct sockaddr **LocalSockaddr,
  121.     OUT LPINT LocalSockaddrLength,
  122.     OUT struct sockaddr **RemoteSockaddr,
  123.     OUT LPINT RemoteSockaddrLength
  124.     );
  125.  
  126. /*
  127.  * "QueryInterface" versions of the above APIs.
  128.  */
  129.  
  130. typedef
  131. BOOL
  132. (PASCAL FAR * LPFN_TRANSMITFILE)(
  133.     IN SOCKET hSocket,
  134.     IN HANDLE hFile,
  135.     IN DWORD nNumberOfBytesToWrite,
  136.     IN DWORD nNumberOfBytesPerSend,
  137.     IN LPOVERLAPPED lpOverlapped,
  138.     IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
  139.     IN DWORD dwReserved
  140.     );
  141.  
  142. #define WSAID_TRANSMITFILE \
  143.         {0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
  144.  
  145. typedef
  146. BOOL
  147. (PASCAL FAR * LPFN_ACCEPTEX)(
  148.     IN SOCKET sListenSocket,
  149.     IN SOCKET sAcceptSocket,
  150.     IN PVOID lpOutputBuffer,
  151.     IN DWORD dwReceiveDataLength,
  152.     IN DWORD dwLocalAddressLength,
  153.     IN DWORD dwRemoteAddressLength,
  154.     OUT LPDWORD lpdwBytesReceived,
  155.     IN LPOVERLAPPED lpOverlapped
  156.     );
  157.  
  158. #define WSAID_ACCEPTEX \
  159.         {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
  160.  
  161. typedef
  162. VOID
  163. (PASCAL FAR * LPFN_GETACCEPTEXSOCKADDRS)(
  164.     IN PVOID lpOutputBuffer,
  165.     IN DWORD dwReceiveDataLength,
  166.     IN DWORD dwLocalAddressLength,
  167.     IN DWORD dwRemoteAddressLength,
  168.     OUT struct sockaddr **LocalSockaddr,
  169.     OUT LPINT LocalSockaddrLength,
  170.     OUT struct sockaddr **RemoteSockaddr,
  171.     OUT LPINT RemoteSockaddrLength
  172.     );
  173.  
  174. #define WSAID_GETACCEPTEXSOCKADDRS \
  175.         {0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
  176.  
  177.  
  178. #ifdef __cplusplus
  179. }
  180. #endif
  181.  
  182.  
  183. #pragma option pop
  184. #endif  /* _MSWSOCK_ */
  185.